package pe.edu.upc.dew.grupo02.dao;
import java.util.List;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import pe.edu.upc.dew.grupo02.model.Pelicula;

public class PeliculaDao extends SimpleJdbcDaoSupport implements IPeliculaDao {

	@Override
	public void crear(Pelicula pelicula) {
		getSimpleJdbcTemplate().update("insert into pelicula(copelicula,nombre,titulooriginal,fechaestreno,director,actores,pais,sinopsis,fl3d,estado,imagen) values(?,?,?,?,?,?,?,?,?,?,?)", pelicula.getCoPelicula(),pelicula.getNombre(),pelicula.getTituloOriginal(),pelicula.getFechaEstreno(),pelicula.getDirector(),pelicula.getActores(),pelicula.getPais(),pelicula.getSinopsis(),pelicula.isFl3d(),pelicula.getEstado(),pelicula.getImagen());
	}

	@Override
	public void eliminar(int codigo) {
		getSimpleJdbcTemplate().update("delete from pelicula where coPelicula=?", codigo);
	}
	
	@Override
	public Pelicula getPelicula(int codigo) {
		return getSimpleJdbcTemplate().queryForObject("select copelicula,nombre,titulooriginal,fechaestreno,director," +
				"actores,pais,sinopsis,fl3d,estado,imagen from pelicula where CoPelicula=?", new BeanPropertyRowMapper<Pelicula>(Pelicula.class),codigo);
	}

	@Override
	public void actualizar(Pelicula pelicula) {
		getSimpleJdbcTemplate().update("update Pelicula set Nombre=?,titulooriginal=?,fechaestreno=?,director=?, " +
				"actores=?,pais=?,sinopsis=?,fl3d=?,estado=?,imagen=? where CoPelicula=?",pelicula.getNombre(),pelicula.getTituloOriginal(),
				pelicula.getFechaEstreno(),pelicula.getDirector(),pelicula.getActores(),pelicula.getPais(),pelicula.getSinopsis(),
				pelicula.isFl3d(),pelicula.getEstado(),pelicula.getImagen(), pelicula.getCoPelicula());
	}

	@Override
	public List<Pelicula> getPeliculas() {
		return getSimpleJdbcTemplate().query(
				"select copelicula,nombre,titulooriginal,fechaestreno,director,actores,pais,sinopsis,fl3d,estado,imagen from pelicula",
				new BeanPropertyRowMapper<Pelicula>(Pelicula.class));
	}

	@Override
	public List<Pelicula> getPeliculasPorEstado(int estado) {
		return getSimpleJdbcTemplate().query(
				"select copelicula,nombre,titulooriginal,fechaestreno,director,actores,pais,sinopsis,fl3d,estado,imagen from pelicula where estado=?",
				new BeanPropertyRowMapper<Pelicula>(Pelicula.class),estado);
	}

	@Override
	public List<Pelicula> getPeliculasEnCarteleraEstreno() {
		return getSimpleJdbcTemplate().query(
				"select copelicula,nombre,titulooriginal,fechaestreno,director,actores,pais,sinopsis,fl3d,estado,imagen from pelicula where estado=1 or estado=2",
				new BeanPropertyRowMapper<Pelicula>(Pelicula.class));
	}
	
	
	

}
